# 装饰器是一种函数，它接受一个函数作为参数，并返回一个新的函数或修改原来的函数。
def my_decorator(func):
    def wrapper():
        print("在原函数之前执行")
        func()
        print("在原函数之后执行")

    return wrapper


@my_decorator
def say_hello():
    print("Hello!")


say_hello()


def decorator_function(original_function):
    def wrapper(*args, **kwargs):
        # 这里是在调用原始函数前添加的新功能
        print("在原函数之前执行")
        result = original_function(*args, **kwargs)
        # 这里是在调用原始函数后添加的新功能
        print("在原函数之后执行")
        return result
    return wrapper


@decorator_function
def say_hello(name, age):
    print(f"Hello, {name},{age}!")
    return "10"


hello = say_hello("Jerry", 14)
print(hello)
